gsk_render_node_unref
GskRenderNodeType
gsk_render_node_get_node_type
-gsk_render_node_get_parent
gsk_render_node_get_first_child
gsk_render_node_get_last_child
gsk_render_node_get_next_sibling
gsk_render_node_get_previous_sibling
gsk_render_node_append_child
gsk_render_node_get_n_children
-gsk_render_node_contains
gsk_render_node_set_transform
gsk_render_node_set_opacity
GskBlendMode
#define N_VERTICES 6
-static inline int
-node_depth (GskRenderNode *node)
-{
- int ret = 0;
- while (node->parent)
- {
- ret++;
- node = node->parent;
- }
- return ret;
-}
-
static void
render_item (GskGLRenderer *self,
RenderItem *item)
/* Draw the quad */
GSK_NOTE2 (OPENGL, TRANSFORMS,
- g_print ("%*sDrawing item <%s>[%p] (w:%g, h:%g) with opacity: %g blend mode: %d\n",
- 2 * node_depth (item->node), "",
+ g_print ("Drawing item <%s>[%p] (w:%g, h:%g) with opacity: %g blend mode: %d\n",
item->name,
item,
item->size.width, item->size.height,
/* Draw the quad */
GSK_NOTE2 (OPENGL, TRANSFORMS,
- g_print ("%*sDrawing offscreen item <%s>[%p] (w:%g, h:%g) with opacity: %g\n",
- 2 * node_depth (item->node), "",
+ g_print ("Drawing offscreen item <%s>[%p] (w:%g, h:%g) with opacity: %g\n",
item->name,
item,
item->size.width, item->size.height,
vertex_data);
}
- GSK_NOTE (OPENGL, g_print ("%*sAdding node <%s>[%p] to render items\n",
- 2 * node_depth (node), "",
+ GSK_NOTE (OPENGL, g_print ("Adding node <%s>[%p] to render items\n",
node->name != NULL ? node->name : "unnamed",
node));
g_array_append_val (render_items, item);
return node->node_class->node_type;
}
-/**
- * gsk_render_node_get_parent:
- * @node: a #GskRenderNode
- *
- * Returns the parent of the @node.
- *
- * Returns: (transfer none): the parent of the #GskRenderNode
- *
- * Since: 3.90
- */
-GskRenderNode *
-gsk_render_node_get_parent (GskRenderNode *node)
-{
- g_return_val_if_fail (GSK_IS_RENDER_NODE (node), NULL);
-
- return node->parent;
-}
-
/**
* gsk_render_node_get_first_child:
* @node: a #GskRenderNode
return;
}
- if (child->parent != NULL)
- {
- g_critical ("The render node of type '%s' already has a parent of type '%s'; "
- "render nodes cannot be added to multiple parents.",
- G_OBJECT_TYPE_NAME (child),
- G_OBJECT_TYPE_NAME (node));
- return;
- }
-
if (!node->is_mutable)
{
g_critical ("The render node of type '%s' is immutable.",
gsk_render_node_ref (child);
- child->parent = node;
child->age = 0;
node->n_children += 1;
g_return_val_if_fail (GSK_IS_RENDER_NODE (child), node);
g_return_val_if_fail (node->is_mutable, node);
- if (child->parent != node)
- {
- g_critical ("The render node of type '%s' is not a child of the render node of type '%s'",
- G_OBJECT_TYPE_NAME (child),
- G_OBJECT_TYPE_NAME (node));
- return node;
- }
-
prev_sibling = child->prev_sibling;
next_sibling = child->next_sibling;
- child->parent = NULL;
child->prev_sibling = NULL;
child->next_sibling = NULL;
child->age = 0;
return node->opacity;
}
-/**
- * gsk_render_node_contains:
- * @node: a #GskRenderNode
- * @descendant: a #GskRenderNode
- *
- * Checks whether @node contains @descendant.
- *
- * Returns: %TRUE if the #GskRenderNode contains the given
- * descendant
- *
- * Since: 3.90
- */
-gboolean
-gsk_render_node_contains (GskRenderNode *node,
- GskRenderNode *descendant)
-{
- GskRenderNode *tmp;
-
- g_return_val_if_fail (GSK_IS_RENDER_NODE (node), FALSE);
- g_return_val_if_fail (GSK_IS_RENDER_NODE (descendant), FALSE);
-
- for (tmp = descendant; tmp != NULL; tmp = tmp->parent)
- if (tmp == node)
- return TRUE;
-
- return FALSE;
-}
-
-/*< private >
- * gsk_render_node_get_toplevel:
- * @node: a #GskRenderNode
- *
- * Retrieves the top level #GskRenderNode without a parent.
- *
- * Returns: (transfer none): the top level #GskRenderNode
- */
-GskRenderNode *
-gsk_render_node_get_toplevel (GskRenderNode *node)
-{
- GskRenderNode *parent;
-
- parent = node->parent;
- if (parent == NULL)
- return node;
-
- while (parent != NULL)
- {
- if (parent->parent == NULL)
- return parent;
-
- parent = parent->parent;
- }
-
- return NULL;
-}
-
void
gsk_render_node_set_scaling_filters (GskRenderNode *node,
GskScalingFilter min_filter,
GDK_AVAILABLE_IN_3_90
GskRenderNode * gsk_container_node_new (void);
-GDK_AVAILABLE_IN_3_90
-GskRenderNode * gsk_render_node_get_parent (GskRenderNode *node);
GDK_AVAILABLE_IN_3_90
GskRenderNode * gsk_render_node_get_first_child (GskRenderNode *node);
GDK_AVAILABLE_IN_3_90
GDK_AVAILABLE_IN_3_90
guint gsk_render_node_get_n_children (GskRenderNode *node);
-GDK_AVAILABLE_IN_3_90
-gboolean gsk_render_node_contains (GskRenderNode *node,
- GskRenderNode *descendant);
-
GDK_AVAILABLE_IN_3_90
void gsk_render_node_set_transform (GskRenderNode *node,
const graphene_matrix_t *transform);